package cn.gzsxt.music.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import cn.gzsxt.music.query.RoleQueryObject;
@Mapper
public interface RoleMapper {
	/**
	 * 根据条件查询结果
	 * 
	 * @param qo 条件对象
	 * @return 结果集
	 */
	@Select("select * from tb_role limit #{beginIndex},#{rows}")
	List<Map<String, Object>> selectRoleListByCondition(RoleQueryObject qo);

	/**
	 * 根据条件查询总数
	 * 
	 * @param qo 条件对象
	 * @return 总数
	 */
	@Select("select count(*) from tb_role")
	Long selectRoleTotalByCondition(RoleQueryObject qo);

	/**
	 * 插入操作
	 * 
	 * @param params
	 * @return
	 */
	@Insert("insert into tb_role (role_name,role_action) values (#{role_name},#{role_action})")
	int insert(Map<String, Object> params);

	/**
	 * 删除指定id的角色
	 * 
	 * @param role_id
	 * @return
	 */
	@Delete("delete from tb_role where role_id = #{role_id}")
	int deleteRoleById(@Param("role_id") Long role_id);

	/**
	 * 	修改指定id的角色名称
	 * @param params
	 * @return
	 */
	@Update("update tb_role set role_name = #{role_name},role_action = #{role_action} where role_id = #{role_id}")
	int update(Map<String, Object> params);
	
	/**
	 * 	获取所有角色,不带分页,以供用户管理关联角色使用
	 * @return
	 */
	@Select("select role_id id,role_name text from tb_role")
	List<Map<String, Object>> getAllRoles();
	/**
	 * 根据角色id查询出对应的角色信息
	 * @param 角色id
	 * @return 角色信息
	 */
	@Select("select * from tb_role where role_id = #{role_id}")
	Map<String, Object> selectRoleByRoleId(Long roleId);
}
